import os
import shutil
import json

def restore_images():
    # 定义目录路径
    source_dir = 'image/catalog/product'
    result_dir = 'result-translated'
    mapping_file = os.path.join(result_dir, 'mapping.json')
    # 检查映射文件是否存在
    if not os.path.exists(mapping_file):
        print("错误: 找不到映射文件，请先运行提取脚本!")
        return
    
    # 读取映射文件
    with open(mapping_file, 'r', encoding='utf-8') as f:
        mapping = json.load(f)
    
    restored_count = 0
    
    # 遍历映射关系进行还原
    for new_filename, original_path in mapping.items():
        # 源文件路径（result目录中的文件）
        source_path = os.path.join(result_dir, new_filename)
        # 目标文件路径（原始位置）
        target_path = os.path.join(source_dir, original_path)
        
        if os.path.exists(source_path):
            # 确保目标目录存在
            os.makedirs(os.path.dirname(target_path), exist_ok=True)
            # 复制文件（使用覆盖模式）
            shutil.copy2(source_path, target_path)
            print(f"已还原: {new_filename} -> {original_path}")
            restored_count += 1
        else:
            print(f"警告: 找不到文件 {new_filename}")
    
    print(f"\n完成! 共还原了 {restored_count} 个图片文件")

if __name__ == '__main__':
    restore_images()
